package top.lingkang.finalvalidated.core;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 开启需要检查的入参对象，嵌套属对象时，也需要加上此注解
 *
 * @author lingkang
 * created by 2024/1/26
 */
@Target({ElementType.PARAMETER, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ValidObject {

    /**
     * 分组，为空时，不会校验带有 groups 的注解，<br>
     * 不为空时只会校验当前分组类的属性和空分组的属性<br/>
     * 校验对象的属性A分组类与当前分组类属性不匹配时，不会校验属性A
     *
     * @since 3.0.0
     */
    Class<?>[] value() default {};
}
